# src\models\sys_message.py
from sqlalchemy import Column, String, Date, DateTime, Boolean, Integer,UniqueConstraint
from src.core.ormdb import Base
from src.core import str_utils as strU


class SysMessage(Base):
    __tablename__ = "sys_message"
    __table_args__ = (
        UniqueConstraint(
            "api_id", "language", "code",
            name="uk_sys_message_api_code_lang"
        ),
        {"comment": "多国语言消息表"},
    )
    id = Column(String(36), primary_key=True, default=lambda: strU.generate_id(), comment="唯一标识ID")
    api_id = Column(String(36), nullable=True, comment="API主键，用于关联其他系统")
    language = Column(String(10), nullable=True, comment="语言标识 zh/en/fr...")
    code = Column(String(40), nullable=True, comment="错误码")
    description = Column(String(255), nullable=True, comment='描述')
    message = Column(String(500), nullable=True, comment="翻译文本")
    remark = Column(String(255), nullable=True,
                    comment='业务备注，记录该条翻译的使用场景或变更原因')
    deletion_mark = Column(Boolean, default=False, comment="删除标志，0表示未删除，1表示已删除")
    deletion_reason = Column(String(255), nullable=True, comment="删除原因，记录删除的具体原因")
    deletion_date = Column(DateTime, nullable=True, comment="删除日期，记录删除的时间")
    deletion_by = Column(String(255), nullable=True, comment="删除者，记录删除操作的执行者")
    # create_date = Column(DateTime, default="now()", comment="创建日期，记录创建的时间")
    create_date = Column(DateTime, default=lambda: strU.now(), comment="创建日期，记录创建的时间")
    creator_by = Column(String(255), nullable=True, comment="创建者，记录创建操作的执行者")
    last_updated_date = Column(DateTime, nullable=True, comment="最后更新时间，记录最后更新的时间")
    last_updated_by = Column(String(255), nullable=True, comment="最后更新者，记录最后更新操作的执行者")
